import request from "@/utils/request";

//平台属性值列表中每一项的类型
export interface attrValueItemType {
  id?: number; //平台属性值id
  valueName: string; //平台属性值名称
  attrId?: number; //平台属性值所在的平台属性ID
  isEdit?:boolean;//临时添加,代表当前值是编辑模式开始开发模式
}

//平台属性值列表的类型
export type attrValueListType = attrValueItemType[];

//平台属性列表中每一项的类型
export interface attrItemType {
  id?: number; //平台属性id
  attrName: string; //平台属性名称
  categoryId: number; //平台属性所在的categoryId
  categoryLevel: number; //当前平台属性列表是属性几级分类下的
  attrValueList: attrValueListType; //当前平台属性的平台属性值列表
  attrIdValueId?:string//后期为了收集添加的类型
}

//平台属性列表的类型
export type attrListType = attrItemType[];

//添加或者修改平台属性的时候参数类型
export interface addOrUpdateAttrParamType {
  id?: number;
  attrName: string;
  categoryId: number;
  categoryLevel: number;
  attrValueList: attrValueListType;
}

//1. 请求平台属性列表
export const reqAttrList = (
  category1Id: number,
  category2Id: number,
  category3Id: number
) => {
  return request.get<null, attrListType>(
    `/admin/product/attrInfoList/${category1Id}/${category2Id}/${category3Id}`
  );
};

//2. 删除平台属性
export const reqDeleteAttr = (attrId: number) => {
  return request.delete<null, null>(`/admin/product/deleteAttr/${attrId}`);
};

//3.新增或者修改平台属性
export const reqAddOrUpdateAttr = (attrInfo: addOrUpdateAttrParamType) => {
  return request.post<null,null>(`/admin/product/saveAttrInfo`, attrInfo);
};
